home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / Asm / AB3DIIsrc / Includes / macros.i < prev    next >
Encoding:
Text File  |  1980-11-19  |  6.8 KB  |  190 lines

  1. *---------------------------------------------------------------------------*
  2. CACHE_ON    MACRO
  3. *---------------------------------------------------------------------------*
  4.             Movec.l    CACR,\1
  5.             Or.l    #1,\1
  6.             Movec.l    \1,CACR
  7.             ENDM
  8. *---------------------------------------------------------------------------*
  9. CACHE_OFF    MACRO
  10. *---------------------------------------------------------------------------*
  11.             Movec.l    CACR,\1
  12.             And.l    #-2,\1
  13.             Movec.l    \1,CACR
  14.             ENDM
  15. *---------------------------------------------------------------------------*
  16. DATA_CACHE_CLEAR    MACRO
  17. *---------------------------------------------------------------------------*
  18.             Movec.l    CACR,\1
  19.             or.l    #%100000000000,\1
  20.             Movec.l    \1,CACR
  21.             ENDM
  22. *---------------------------------------------------------------------------*
  23. CACHE_CLEAR    MACRO
  24. *---------------------------------------------------------------------------*
  25.             Movec.l    CACR,\1
  26.             or.l    #8,\1
  27.             Movec.l    \1,CACR
  28.             ENDM
  29. *---------------------------------------------------------------------------*
  30. CACHE_FREEZE_ON    MACRO
  31. *---------------------------------------------------------------------------*
  32.             Movec.l    CACR,\1
  33.             or.l    #2,\1
  34.             Movec.l    \1,CACR
  35.             ENDM
  36. *---------------------------------------------------------------------------*
  37.  
  38. DATA_CACHE_ON    MACRO
  39. *---------------------------------------------------------------------------*
  40.             Movec.l    CACR,\1
  41.             or.l    #$10,\1
  42.             Movec.l    \1,CACR
  43.             ENDM
  44. *---------------------------------------------------------------------------*
  45. DATA_CACHE_OFF    MACRO
  46. *---------------------------------------------------------------------------*
  47.             Movec.l    CACR,\1
  48.             and.l    #%11111111111111111111111011111111,\1
  49.             Movec.l    \1,CACR
  50.             ENDM
  51. *---------------------------------------------------------------------------*
  52.  
  53.  
  54. CACHE_FREEZE_OFF    MACRO
  55. *---------------------------------------------------------------------------*
  56.             Movec.l    CACR,\1
  57.             and.l    #%11111111111111111111111111111101,\1
  58.             Movec.l    \1,CACR
  59.             ENDM
  60. *---------------------------------------------------------------------------*
  61. DUGDOS            MACRO
  62.             Move.l    DosBase,a6
  63.             Jsr    _LVO\1(a6)        DosCall
  64.             ENDM
  65. *---------------------------------------------------------------------------*
  66. DUGREQ            MACRO
  67.             Move.l    ReqBase,a6
  68.             Jsr    _LVO\1(a6)        ReqCall
  69.             ENDM
  70. *---------------------------------------------------------------------------*
  71. BLIT_NASTY        MACRO
  72.                 Move.w    #$8400,Dmacon(a6)    Blitter Nasty On
  73.             ENDM
  74. *---------------------------------------------------------------------------*
  75. BLIT_NICE        MACRO
  76.             Move.w    #$0400,Dmacon(a6)    Blitter Nasty Off
  77.             ENDM
  78. *---------------------------------------------------------------------------*
  79. WAIT_BLIT         MACRO
  80. .\@
  81.             Btst    #6,DMACONR(a6)        Wait for Blitter End
  82.             Bne.s    .\@
  83.                 ENDM
  84.  
  85. *---------------------------------------------------------------------------*
  86. SCROLL_WB         MACRO
  87. .\@
  88.             Btst    #6,DMACONR-BLTSIZE(a3)        Wait for Blitter End
  89.             Bne.s    .\@
  90.                 ENDM
  91. *---------------------------------------------------------------------------*
  92. PALETTE32COL    MACRO
  93.         dc.l    $1800000,$1820000,$1840000,$1860000,$1880000,$18a0000
  94.         dc.l    $18c0000,$18e0000,$1900000,$1920000,$1940000,$1960000
  95.         dc.l    $1980000,$19a0000,$19c0000,$19e0000,$1a00000,$1a20000
  96.         dc.l    $1a40000,$1a60000,$1a80000,$1aa0000,$1ac0000,$1ae0000
  97.         dc.l    $1b00000,$1b20000,$1b40000,$1b60000,$1b80000,$1ba0000
  98.         dc.l    $1bc0000,$1be0000
  99.         ENDM
  100. *---------------------------------------------------------------------------*
  101.  
  102. * QMOVE         move a constant into a reg the quickest way (probbly)      *
  103. * qmove.w 123,d0 NB:if word or byte, will still use moveq!!! if it can      *
  104. *---------------------------------------------------------------------------*
  105. QMOVE    MACRO
  106.     IFGE    \1
  107.         IFLE    \1-127
  108.         Moveq    #\1,\2
  109.                MEXIT
  110.         ENDC
  111.             IFLE    \1-255
  112.             Moveq    #256-\1,\2
  113.             Neg.b    \2
  114.             MEXIT
  115.             ENDC
  116.                 move.\0    #\1,\2
  117.                 MEXIT
  118.                         ELSEIF
  119.                           move.\0    #\1,\2
  120.                     ENDC
  121.                     ENDM
  122. ;*---------------------------------------------------------------------------*
  123. ;STRUCTURE    MACRO        ; structure name, initial offset
  124. ;*---------------------------------------------------------------------------*
  125. ;\1        EQU    0
  126. ;SOFFSET        SET     0
  127. ;        ENDM
  128. ;*---------------------------------------------------------------------------*
  129. ;BYTE        MACRO        ;byte (8 bits)
  130. ;*---------------------------------------------------------------------------*
  131. ;\1        EQU    SOFFSET
  132. ;SOFFSET        SET    SOFFSET+1
  133. ;        ENDM
  134. ;*---------------------------------------------------------------------------*
  135. ;WORD            MACRO        ; word (16 bits)
  136. ;*---------------------------------------------------------------------------*
  137. ;\1            EQU     SOFFSET
  138. ;SOFFSET         SET     SOFFSET+2
  139. ;            ENDM
  140. ;*---------------------------------------------------------------------------*
  141. ;LONG            MACRO        ; long (32 bits)
  142. ;*---------------------------------------------------------------------------*
  143. ;\1        EQU     SOFFSET
  144. ;SOFFSET        SET     SOFFSET+4
  145. ;            ENDM
  146. ;*---------------------------------------------------------------------------*
  147. ;NBYTE        MACRO        ;byte (8 bits)
  148. ;*---------------------------------------------------------------------------*
  149. ;SOFFSET        SET    SOFFSET+1
  150. ;        ENDM
  151. ;*---------------------------------------------------------------------------*
  152. ;NWORD            MACRO        ; word (16 bits)
  153. ;*---------------------------------------------------------------------------*
  154. ;SOFFSET         SET     SOFFSET+2
  155. ;            ENDM
  156. ;*---------------------------------------------------------------------------*
  157. ;NLONG            MACRO        ; long (32 bits)
  158. ;*---------------------------------------------------------------------------*
  159. ;SOFFSET        SET     SOFFSET+4
  160. ;            ENDM
  161. ;*---------------------------------------------------------------------------*
  162. ;LABEL            MACRO        ; Define a label without bumping the offset
  163. ;*---------------------------------------------------------------------------*
  164. ;\1            EQU     SOFFSET
  165. ;            ENDM
  166. ;*---------------------------------------------------------------------------*
  167. ;STRUCT            MACRO        ; Define a sub-structure
  168. ;*---------------------------------------------------------------------------*
  169. ;\1        EQU     SOFFSET
  170. ;SOFFSET        SET     SOFFSET+\2
  171. ;        ENDM
  172. ;*---------------------------------------------------------------------------*
  173. ;ALIGNWORD       MACRO        ; Align structure offset to nearest word
  174. ;*---------------------------------------------------------------------------*
  175. ;SOFFSET        SET     (SOFFSET+1)&$fffffffe
  176. ;            Even
  177. ;            ENDM
  178. ;*---------------------------------------------------------------------------*
  179. ;ALIGNLONG    MACRO        ; Align structure offset to nearest longword
  180. ;*---------------------------------------------------------------------------*
  181. ;SOFFSET        SET     (SOFFSET+3)&$fffffffc
  182. ;        CNOP    0,4
  183. ;        ENDM
  184. ;*---------------------------------------------------------------------------*
  185. ;AGAALIGN    MACRO        ; Align structure offset to nearest longword
  186. ;*---------------------------------------------------------------------------*
  187. ;        CNOP    0,8
  188. ;        ENDM
  189. ;*---------------------------------------------------------------------------*
  190.